/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mastercard.assets.web.struts.actions;

import com.mastercard.assets.MasterCardException;
import com.mastercard.assets.jpa.TblGanador;
import com.mastercard.assets.util.MCUtil;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.struts.forms.PantallaGanadorForm;
import com.mastercard.assets.web.util.to.UserLogin;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/**
 *
 * @author rod
 */
public class PantallaGanador
    extends
            Action
{
 
    public ActionForward execute(
							ActionMapping mapping , 
							ActionForm form ,
							HttpServletRequest request , 
							HttpServletResponse response )
		throws 
			IOException , 
			ServletException
    {
        HttpSession session = request.getSession( ) ;
        // en caos de null
	if( session == null )
            return mapping.findForward( "noLogin" ) ;
		
	// toma el userLogin
	UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
		
	// en caso de null
	if( user == null )
            return mapping.findForward( "noLogin" ) ;
        
        PantallaGanadorForm f = (PantallaGanadorForm) form ;
        
        FormFile f1 = f.getFoto_1( ) ,
                f2 = f.getFoto_2( ) ,
                f3 = f.getFoto_3( ) ,
                f4 = f.getFoto_4( ) ;
        
        String foto1 = f.getFoto_1( ) == null ? "" : f.getFoto_1( ).getFileName( ) ,
                foto2 = f.getFoto_2( ) == null ? "" : f.getFoto_2( ).getFileName( ) ,
                foto3 = f.getFoto_3( ) == null ? "" : f.getFoto_3( ).getFileName( ) ,
                foto4 = f.getFoto_4( ) == null ? "" : f.getFoto_4( ).getFileName( ) ,
                texto1 = f.getTexto1( ).equals( "Descripcion" ) ? "" : f.getTexto1( ) ,
                texto2 = f.getTexto2( ).equals( "Descripcion" ) ? "" : f.getTexto2( ) ,
                texto3 = f.getTexto3( ).equals( "Descripcion" ) ? "" : f.getTexto3( ) ,
                texto4 = f.getTexto4( ).equals( "Descripcion" ) ? "" : f.getTexto4( ) ;
        
        TblGanador winner = user.getTblGanador() ;
        try {
            
            boolean ganador =
                    MasterCardDAO.updateGanadorFotos( winner.getCveGanador( ) , foto1, foto2, foto3, foto4, texto1, texto2, texto3, texto4 ) ;
            
            for ( int i = 1 ; i < 5 ; i ++ ) {
                int fotoNum = i ;
                String fotoName = "" ;
                FormFile picFile = null ;
                
                if ( i == 1 )
                { fotoName = foto1 ; picFile = f1 ; }
                else if ( i == 2 ) { fotoName = foto2 ; picFile = f2 ; }
                else if ( i == 3 ) { fotoName = foto3 ; picFile = f3 ; }
                else if ( i == 4 ) { fotoName = foto4 ; picFile = f4 ; }
                
                if ( fotoName.equals( "" )  )
                    continue ;
                
                String filePath = "Foto"+fotoNum+"-" + winner.getCveGanador( ) + "_" + fotoName ;
            //MCUtil.extractContratoFileName( campania.getCveCampania() , contrato.getFileName() ) ;
                
            System.out.println( "Foto"+i+":  - " + MCUtil.getConfProperty( MCUtil.CONF_PROPS_FOTOS_DIR_PATH ) + filePath ) ;
            System.out.println( "Directorio de fotos: " + MCUtil.FOTOS_DIR ) ;
            
            if( !fotoName.equals("") ) {
                
            //C:\Users\rod\Documents\NetBeansProjects_Respaldo\NuevaCarpeta\MasterCard\WebContent\WEB-INF\fotos
//                File f = new File( WEB_INF_DIR.replaceAll( "build\\\\web" , "WebContent" ) , fotoDir ) ;
            String rutaFoto = MCUtil.getFotoDir( ).replaceAll("WEB-INF\\\\fotos", "/foto/") ;//.substring( 0 , 84 ) ;
//            rutaFoto = rutaFoto + "/foto/" ;
            File formFile = new File( rutaFoto ) ;
	    System.out.println( "Ruta de fotos: " + formFile.getAbsolutePath( ) ) ;
            FileOutputStream out = new FileOutputStream( new File( formFile , filePath ) ) ;
            out.write( picFile.getFileData( ) ) ;
            out.close( ) ;
                
            }

                
            }
            
        } catch (MasterCardException ex) {
            MasterCardDAO.closeEntityManager( ) ;
            Logger.getLogger(PantallaGanador.class.getName()).log(Level.SEVERE, null, ex);
        }
            
        
        
            
            request.setAttribute( "Nombre", winner.getGNombre( ) ) ;
            request.setAttribute( "Apellidos", winner.getGApellido( ) ) ;
            request.setAttribute( "cve", winner.getCveGanador( ) ) ;
            
            request.setAttribute( "agenda", winner.getArchivoAgenda( ) );
            request.setAttribute( "boleto", winner.getArchivoBoleto( ) );
            request.setAttribute( "Ganador", winner ) ;
//            request.setAttribute( "foto1", pic1 ) ;
        
        MasterCardDAO.closeEntityManager( ) ;
        return mapping.findForward( "success" ) ;
    }
    
}
